package com.mdr.imedera.util.wx;

import lombok.Data;

/**
 *  获取AccessToken的异常枚举
 */
public enum AccessTokenErrCode {
    SYSTEM_IS_BUSY(-1,"微信:系统繁忙，请稍后再试"),
    REQUEST_SUCCESS(0,"请求成功"),
    APP_SECRET_ERROR(40001,"AppSecret错误或者AppSecret不属于这个公众号，请开发者确认AppSecret的正确性"),
    GRANT_TYPE(40002,"请确保grant_type字段值为client_credential"),
    IP_ADDRESS_NOT_IN_WHITE_LIST(40164,"调用接口的IP地址不在白名单中，请在接口IP白名单中进行设置"),
    NEED_ADMINISTRATORS_CONFIRM(89503,"此IP调用需要管理员确认,请联系管理员"),
    WAITE_ADMINISTRATORS_CONFIRM(89501,"此IP正在等待管理员确认,请联系管理员"),
    REJECT_ADMINISTRATORS_TWENTY_FOUR_HOUR(89506,"24小时内该IP被管理员拒绝调用两次，24小时内不可再使用该IP调用"),
    REJECT_ADMINISTRATORS_ONE_HOUR(89507,"1小时内该IP被管理员拒绝调用一次，1小时内不可再使用该IP调用")
    ;

    private Integer errCode;

    private String errMsg;

    public Integer getErrCode() {
        return errCode;
    }

    public void setErrCode(Integer errCode) {
        this.errCode = errCode;
    }

    public String getErrMsg() {
        return errMsg;
    }

    public void setErrMsg(String errMsg) {
        this.errMsg = errMsg;
    }

    AccessTokenErrCode(Integer errCode, String errMsg) {
        this.errCode = errCode;
        this.errMsg = errMsg;
    }

    public static String of(Integer errCode){
        for(AccessTokenErrCode code: AccessTokenErrCode.values()){
            if(code.getErrCode().equals(errCode)){
                return code.getErrMsg();
            }
        }
        return null;
    }
}
